package com.platform.enums;

import com.platform.comm.enums.IDictEntry;
import com.platform.comm.enums.IEnumItem;

/**
 * 资源交换节点信息
 *
 * @author Tommy
 */
public enum DirExNodeType implements IDictEntry, IEnumItem {
    /**
     * 目录交换节点,可以作为源交换节点或目标交换节点，可以是文件、目录数据库、网络服务等
     */
    RDBMS("关系型数据库"), FILE("文件"), MPP("MPP数据库"), API("服务接口"),FTP("FTP");

    public final String title;

    DirExNodeType(String title) {
        this.title = title;
    }

    /**
     * 根据枚举"键"值解析枚举值
     *
     * @param code 枚举"键"值
     * @return DirExNodeType
     */
    public static DirExNodeType parse(String code) {
        try {
            return valueOf(code);
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * 根据枚举"键"值解析枚举值，如果未找到匹配项，则返回默认值
     *
     * @param code 枚举"键"值
     * @param def  默认值
     * @return DirExNodeType
     */
    public static DirExNodeType parse(String code, DirExNodeType def) {
        try {
            return valueOf(code);
        } catch (Exception e) {
            return def;
        }
    }


    @Override
    public String getKey() {
        return name();
    }

    @Override
    public String getValue() {
        return title;
    }

    @Override
    public Object getData() {
        return this;
    }

    @Override
    public boolean is(String code) {
        return name().equals(code);
    }

}
